package com.ruoyi.training.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 预开票对象 pre_invoice
 * 
 * @author hcc
 * @date 2025-09-29
 */
public class PreInvoice extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 预开票id */
    private String preInvoiceId;

    /** 报名id */
    @Excel(name = "报名id")
    private String registrationId;

    /** 发票ID */
    @Excel(name = "发票ID")
    private String invoiceId;

    /** 发票种类 */
    @Excel(name = "发票种类")
    private String preInvoiceCategory;

    /** 发票类型 */
    @Excel(name = "发票类型")
    private String preInvoiceType;

    /** 发票状态 */
    @Excel(name = "发票状态")
    private String preInvoiceStatus;

    /** 发票抬头 */
    @Excel(name = "发票抬头")
    private String preInvoiceTitle;

    /** 发票编号 */
    @Excel(name = "发票编号")
    private String preInvoiceNumber;

    /** 发票金额 */
    @Excel(name = "发票金额")
    private String preInvoiceAmount;

    /** 单位名称 */
    @Excel(name = "单位名称")
    private String preUnitName;

    /** 单位统一信用代码 */
    @Excel(name = "单位统一信用代码")
    private String preCreditCode;

    /** 联系人 */
    @Excel(name = "联系人")
    private String preContact;

    /** 联系人电话 */
    @Excel(name = "联系人电话")
    private String prePhone;

    /** 开票时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "开票时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date preIssueTime;

    /** 发票信息（图片） */
    @Excel(name = "发票信息", readConverterExp = "图=片")
    private String preInvoiceImage;

    /** 备注信息 */
    @Excel(name = "备注信息")
    private String preRemark;

    /** 关联信息 */
    @Excel(name = "关联信息")
    private String preCorrelation;

    /** 关联金额 */
    @Excel(name = "关联金额")
    private String preCorrelationAmount;

    /** 未关联金额 */
    @Excel(name = "未关联金额")
    private String preUnassociated;

    public String getPreDelFlag() {
        return preDelFlag;
    }

    public void setPreDelFlag(String preDelFlag) {
        this.preDelFlag = preDelFlag;
    }

    /** 是否删除 */
    @Excel(name = "是否删除")
    private String preDelFlag;

    /** $column.columnComment */
    private String exampleOne;

    /** $column.columnComment */
    private String exampleTwo;

    /** $column.columnComment */
    private String exampleThree;

    public void setPreInvoiceId(String preInvoiceId) 
    {
        this.preInvoiceId = preInvoiceId;
    }

    public String getPreInvoiceId() 
    {
        return preInvoiceId;
    }

    public void setRegistrationId(String registrationId) 
    {
        this.registrationId = registrationId;
    }

    public String getRegistrationId() 
    {
        return registrationId;
    }

    public void setInvoiceId(String invoiceId) 
    {
        this.invoiceId = invoiceId;
    }

    public String getInvoiceId() 
    {
        return invoiceId;
    }

    public void setPreInvoiceCategory(String preInvoiceCategory) 
    {
        this.preInvoiceCategory = preInvoiceCategory;
    }

    public String getPreInvoiceCategory() 
    {
        return preInvoiceCategory;
    }

    public void setPreInvoiceType(String preInvoiceType) 
    {
        this.preInvoiceType = preInvoiceType;
    }

    public String getPreInvoiceType() 
    {
        return preInvoiceType;
    }

    public void setPreInvoiceStatus(String preInvoiceStatus) 
    {
        this.preInvoiceStatus = preInvoiceStatus;
    }

    public String getPreInvoiceStatus() 
    {
        return preInvoiceStatus;
    }

    public void setPreInvoiceTitle(String preInvoiceTitle) 
    {
        this.preInvoiceTitle = preInvoiceTitle;
    }

    public String getPreInvoiceTitle() 
    {
        return preInvoiceTitle;
    }

    public void setPreInvoiceNumber(String preInvoiceNumber) 
    {
        this.preInvoiceNumber = preInvoiceNumber;
    }

    public String getPreInvoiceNumber() 
    {
        return preInvoiceNumber;
    }

    public void setPreInvoiceAmount(String preInvoiceAmount) 
    {
        this.preInvoiceAmount = preInvoiceAmount;
    }

    public String getPreInvoiceAmount() 
    {
        return preInvoiceAmount;
    }

    public void setPreUnitName(String preUnitName) 
    {
        this.preUnitName = preUnitName;
    }

    public String getPreUnitName() 
    {
        return preUnitName;
    }

    public void setPreCreditCode(String preCreditCode) 
    {
        this.preCreditCode = preCreditCode;
    }

    public String getPreCreditCode() 
    {
        return preCreditCode;
    }

    public void setPreContact(String preContact) 
    {
        this.preContact = preContact;
    }

    public String getPreContact() 
    {
        return preContact;
    }

    public void setPrePhone(String prePhone) 
    {
        this.prePhone = prePhone;
    }

    public String getPrePhone() 
    {
        return prePhone;
    }

    public void setPreIssueTime(Date preIssueTime) 
    {
        this.preIssueTime = preIssueTime;
    }

    public Date getPreIssueTime() 
    {
        return preIssueTime;
    }

    public void setPreInvoiceImage(String preInvoiceImage) 
    {
        this.preInvoiceImage = preInvoiceImage;
    }

    public String getPreInvoiceImage() 
    {
        return preInvoiceImage;
    }

    public void setPreRemark(String preRemark) 
    {
        this.preRemark = preRemark;
    }

    public String getPreRemark() 
    {
        return preRemark;
    }

    public void setPreCorrelation(String preCorrelation) 
    {
        this.preCorrelation = preCorrelation;
    }

    public String getPreCorrelation() 
    {
        return preCorrelation;
    }

    public void setPreCorrelationAmount(String preCorrelationAmount) 
    {
        this.preCorrelationAmount = preCorrelationAmount;
    }

    public String getPreCorrelationAmount() 
    {
        return preCorrelationAmount;
    }

    public void setPreUnassociated(String preUnassociated) 
    {
        this.preUnassociated = preUnassociated;
    }

    public String getPreUnassociated() 
    {
        return preUnassociated;
    }

    public void setExampleOne(String exampleOne) 
    {
        this.exampleOne = exampleOne;
    }

    public String getExampleOne() 
    {
        return exampleOne;
    }

    public void setExampleTwo(String exampleTwo) 
    {
        this.exampleTwo = exampleTwo;
    }

    public String getExampleTwo() 
    {
        return exampleTwo;
    }

    public void setExampleThree(String exampleThree) 
    {
        this.exampleThree = exampleThree;
    }

    public String getExampleThree() 
    {
        return exampleThree;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("preInvoiceId", getPreInvoiceId())
            .append("registrationId", getRegistrationId())
            .append("invoiceId", getInvoiceId())
            .append("preInvoiceCategory", getPreInvoiceCategory())
            .append("preInvoiceType", getPreInvoiceType())
            .append("preInvoiceStatus", getPreInvoiceStatus())
            .append("preInvoiceTitle", getPreInvoiceTitle())
            .append("preInvoiceNumber", getPreInvoiceNumber())
            .append("preInvoiceAmount", getPreInvoiceAmount())
            .append("preUnitName", getPreUnitName())
            .append("preCreditCode", getPreCreditCode())
            .append("preContact", getPreContact())
            .append("prePhone", getPrePhone())
            .append("preIssueTime", getPreIssueTime())
            .append("preInvoiceImage", getPreInvoiceImage())
            .append("preRemark", getPreRemark())
            .append("preCorrelation", getPreCorrelation())
            .append("preCorrelationAmount", getPreCorrelationAmount())
            .append("preUnassociated", getPreUnassociated())
            .append("preDelFlag", getPreDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("exampleOne", getExampleOne())
            .append("exampleTwo", getExampleTwo())
            .append("exampleThree", getExampleThree())
            .toString();
    }
}
